import api from '@/api/index.js';
import { defineStore } from 'pinia';

export const useSubmitOrderStore = defineStore('submit-order', {
	state: () => {
		return {
			addressList: [], // 地址列表
			chooseAddress: null, // 选中的地址
			isExpress: true, // 是否选择快递配送方式
		} 
	},

	getters: {

	},

	actions: {
		// 重置store
		RESET_STORE() {
			this.$reset();
		},
		
		// 设置选中的地址
		SET_CHOOSE_ADDRESS(data) {
			this.chooseAddress = data;
		},
		
		// 设置是否使用快递配送
		SET_USE_EXPRESS(value) {
			this.isExpress = value;
		},

		// 获取地址列表
		async getAddressList() {
			const res = await api.c_address_api.getList({ page: 1, limit: 1000 });
			const list = res.data.data.list || [];

			// 找出默认地址或第一个地址备用
			let defaultData = list.find(item => item.is_default == 1);
			if (!defaultData) {
				defaultData = list.length ? list[0] : null;
			}

			if (this.chooseAddress) {
				const newData = list.find(item => item.id === this.chooseAddress.id); // 防止数据有变
				if (newData) { // 更新
					this.chooseAddress = newData;
				} else { // 说明地址被删除了
					this.chooseAddress = defaultData;
				}
			} else {
				this.chooseAddress = defaultData;
			}

			this.addressList = list;
		}
	},
})